In some instances it is useful to decompose the elements of a system into a plurality of subsystems. Such decomposition can facilitate understanding of the system, implementation of the system (particularly when performed by a team of individuals), and visual presentation via a computer monitor or printed paper.
FIG. 1 depicts first illustrative decomposition 100 of a system, in accordance with the prior art. As shown in FIG. 1, the system comprises six elements 101-1 through 101-6, interconnected as shown, and decomposition 100 comprises three subsystems: subsystem 102-1, comprising elements 101-1, 101-3, and 101-4; subsystem 102-2, comprising elements 101-5 and 101-7; and subsystem 102-3, comprising elements 101-2 and 101-6.
FIG. 2 depicts second illustrative decomposition 200 of the same system, in accordance with the prior art. As shown in FIG. 2, decomposition 200 also comprises three subsystems: subsystem 202-1, comprising elements 101-6 and 101-3; subsystem 202-2, comprising elements 101-5, 101-1, and 101-7; and subsystem 202-3, comprising elements 101-2 and 101-4.
Intuitively, second decomposition 200 might be considered “better” than first decomposition 100 because it has fewer connections between subsystems. In this regard, second decomposition 200 is said to have a lower degree of coupling than first decomposition 100.
Similarly, second decomposition 200 could be considered better than first decomposition 100 because in second decomposition 200, there are more connections among elements within each particular subsystem. In this regard, second decomposition 200 is said to have a higher degree of coherence than first decomposition 100.
The problem of finding a system decomposition that is optimal in coupling and coherence belongs to a class of problems known as NP-hard. Such problems have no known polynomial-time solutions and are considered intractable for anything other than small problem sizes (i.e., in the case of system decomposition, systems with a small number of elements). Therefore for larger problem sizes the best that one can hope for is a heuristic technique for finding, in a reasonable amount of time, a system decomposition that is good, albeit not necessarily optimal. Moreover, for typical large system design problems there are often additional system-subsystem decomposition criteria that must be considered beyond coherence and coupling. Adding these additional criteria significantly increases the complexity of determining the quality of candidate decompositions.